Circular queue implementation